Communication over a network often involves a “source” host on the network transmitting information to one or more other “destination” hosts on the network. Such communications typically travel over one or more physical links, such as switches, routers, hubs, etc. Many links have limitations with respect to the amount of information they can transfer in a particular period of time. As multiple source hosts on the network may attempt to transmit information to destination hosts over a given link at any given time, communication delays may occur when the link nears or exceeds its data transfer capacity. For example, in satellite, cellular, and radio networks in which many communications flow through a relatively small number of links (e.g., a satellite that serves multiple hosts in a given geographic area, a cellular tower that serves multiple mobile devices in a given geographic area, etc.), attempts by one or more hosts to transfer large amounts of information via a given link can cause bottlenecks to build up, causing delays and potentially leading to significant downstream adverse effects.
A number of approaches have been developed to manage the transfer of data over networks to accomplish specific performance objectives. As one example, protocols designed to support “Quality of Service” (QoS) objectives on networks which carry telephone traffic may assign higher priority to data (e.g., packets) associated with telephone calls than to data associated with non-telephone traffic, to facilitate timely transfer of the telephone traffic from a source host to a destination host. While such prioritization schemes can be effective in managing network traffic in certain circumstances, they may lose their effectiveness if enough hosts attempt to send high-priority data at the same time that the underlying links' capacity limitations are exceeded. In addition, such prioritization schemes may be overly rigid in practice, as specific types of data are classified in specific ways regardless of the types and quantity of data currently being transferred across the network.